#ifndef _APP_H
#define _APP_H

#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>

#include <iostream>



#include "text.h"


/* Main Application Class */
class App
{
	public:
		
		//singleton stuff
		static App &getInstance();


	
		//Main Functions for handling the App
		bool Init();
		bool Main_Loop();
		void Destroy();


		void Draw_Scene();
/*
		//Setters/Getters for Window Size
		sf::Vector2i Get_WindowSize();
		void Set_WindowSize(int w_width, int w_height);
		void Set_WindowSize(sf::Vector2i new_size);
*/

	    //Get Render Windowz!!!
		sf::RenderWindow* Get_RenderWindow();
		void Set_RenderWindow(sf::RenderWindow& Ren);
		

		//Get position of mouse, 
		sf::Vector2f Get_MousePosition() { return mouse_pos; }


		//Get ScreenSize
		sf::Vector2i Get_ScreenSize() { return screen_size; }

		//Music
		sf::Music Music;
	protected:

		//Singleton stuff
		static App _instance;

		App();
		App(const App &);
		App & operator=(const App &);




		//Render Window reference
		sf::RenderWindow *Rendow;


		


		/* Window Properties */
		int color_depth;
		int screen_style;

		std::string title, version;

		sf::Vector2i screen_size;
		sf::Vector2f mouse_pos;


		//Sounds - These don't belong here
		
		sf::SoundBuffer sb_changeGun;
		//Change Gunz!
		sf::Sound SND_changeGun;

		//Fonts
		sf::Font InfectedFont, DoomFont;

		//Create Texts' to the screen
		 Text FrameRate, GunInfo, PlayerState;


		 //Background Junk
	 sf::Image back_img, back2_img;
	 sf::Sprite Background, Background2;

		
};


#endif